import os
import torch
import json

# 获取文件的绝对路径，然后基于这个路径进行路径拼接
base_dir = os.path.dirname(os.path.abspath(__file__))
# print(f'base_dir-->{base_dir}')

class Config(object):
    def __init__(self):
        # 如果是windows或者linux电脑（使用GPU）
        self.device = "cuda:0" if torch.cuda.is_available() else "cpu:0"
        # M1芯片及其以上的电脑（使用GPU）
        # self.device = 'mps'
        self.train_path = os.path.join(base_dir, 'data/train.txt')
        self.vocab_path = os.path.join(base_dir, 'vocab/vocab.txt')
        self.embedding_dim = 300
        self.epochs = 10
        self.batch_size = 8
        self.hidden_dim = 256
        self.lr = 2e-3 # crf的时候，lr可以小点，比如1e-3
        self.dropout = 0.2
        self.model = "BiLSTM" # 可以只用"BiLSTM/BiLSTM_CRF"
        self.tag2id = json.load(open(os.path.join(base_dir, 'data/tag2id.json'), 'r', encoding='utf-8'))


if __name__ == '__main__':
    conf = Config()
    print(conf.train_path)
    print(conf.tag2id)
